package com.sinux.mms.util;

import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

import org.apache.commons.codec.digest.DigestUtils;

import com.sun.org.apache.bcel.internal.generic.NEW;
/**
 * 公共工具类
 * @author WangGan
 *
 */
@SuppressWarnings("all")
public class MUtil {
	/**启用状态 默认启用*/
	public static final int STATE_YES=1;
	/**禁用状态*/
	public static final int STATE_NO=0;
	/**部门根节点编号名称*/
	private static  String key="rootDepartNumber";
	/**配置文件名称*/
	private static  String fileName="config.properties";
	/**获取根节点编号*/
	public static  String rootNumber=PropertiesUtil.rootDepartNumber(key, fileName);
	/**UUID*/
	public static String newUUID=crateUUID();
	/**当前时间*/
	public static String NowDate=getNowDate();
	
	/**
	 * MD5验证加密
	 * @param originString
	 * @return
	 */
	public static String encryptByMd5New(String originString) {
		String result = "";
		if (originString != null) {
			try {
				// 指定加密的方式为MD5
				MessageDigest md = MessageDigest.getInstance("MD5");
				// 进行加密运算
				byte bytes[] = md.digest(originString.getBytes("UTF8"));
				for (int i = 0; i < bytes.length; i++) {
					// 将整数转换成十六进制形式的字符串 这里与0xff进行与运算的原因是保证转换结果为32位
					String str = Integer.toHexString(bytes[i] & 0xFF);
					if (str.length() == 1) {
						str += "F";
					}
					result += str;
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return result;
	}
	/**
	 * 对密码进行MD5加密
	 * @param originString
	 * @return 
	 */
	public static String encryptByMd5(String originString) {
        return DigestUtils.md5Hex(originString).toLowerCase();
    }
	
	
	
	/**UUID*/
	public static String crateUUID(){
		UUID uuid = UUID.randomUUID();
		return uuid+"";
	}
	
	/**获取当前时间*/
	public static String getNowDate(){
		SimpleDateFormat sdf=new SimpleDateFormat("yyMMddHHmmss");
		String date = sdf.format(new Date());
		return date;
	}
	
	//测试
	public static void main(String[] args) {
		
		//System.out.println("root==>"+MUtil.encryptByMd5("root"));
		//System.out.println("rootNumber:"+MUtil.rootNumber);
		//System.out.println("UUID:"+MUtil.newUUID);
		System.out.println("当前时间:"+MUtil.NowDate);
	}
	

}
